Parallel access to data over a packet network

ABSTRACT

An end user application ( 15 ) generates a plurality of access requests for the same data to be delivered over a plurality of routes ( 21,22,23 ), each request conveying an indication of their common origin to the targeted webserver or other internet application ( 13 ). The targeted application ( 13 ) has means arranged to identify the indication of common origin, and therefore whether a plurality of addresses ( 21 X,  22 Y,  23 Z) requesting multiple requests for the same data are associated with the same end user ( 15 ), and where this is the case splits the requested data, and streams different parts of the data to the different addresses requesting it. The end user, on receiving the requested data, assembles the data sent over the plurality of routes into a single stream for access by the user. Buffering may be necessary if traffic is slower over one path than it is over another.

This invention relates to the accession of data from a database, and inparticular the accession of large files or streamed (non real time)video from remote websites.

Currently, if a user having a high bit rate (2 Mb/s) ADSL (asymmetricdigital subscriber loop) connection attempts to “stream” a high bit-ratevideo computer file from a remote site, perhaps in another country, thebit rate received is often very much slower than the user's connectionis capable of, perhaps only 100-400 kb/s, due to congestion andcontention for capacity with other users over shared internationalconnections. At this rate video quality would be poor and virtuallyunacceptable. It is possible to alter the underlying network to providesay 2 Mb/s throughput for the particular user, but this requires changesto the core Internet Protocol (IP) network. The concept of usingmultiple virtual connections and access connections to support improvedthroughput is already established and implemented in the form of InverseMultiplexing for ATM (IMA) (ATM-Forum AF-PHY-0086.0010): for internetaccess the end user would get a single IP address and the access serverwould reassemble the data into one stream for routing across theinternet. Note the access server is the gateway between the connectionorientated ATM access network and the IP routed core. Therefore therewould be no benefit if the bottleneck is in fact between the accessserver and the database being accessed.

Most access networks have the capability to allow an end user, if he sochooses, to gain access several times simultaneously, using the same ordifferent Internet service providers. Each time the user logs on he getsanother IP address. To the core IP network these addresses all appear tobe separate users. When it is heavily loaded, the core network dividesits bandwidth up equally between the addresses contending for access, soa user who has logged on three times will get three times as muchbandwidth as a user logged on only once. The mechanism to log on aplurality of times could be multiple asynchronous transfer mode (ATM)permanent or switched virtual connections (PVCs or SVCs), or the PPPoE(Point to Point Protocol over Ethernet). However, if the internetapplication streaming the data to the end user receives requests for aparticular stream from three separate IP address it will send the samedata to all three addresses and so the additional bandwidth will be ofno practical use, as the data will simply be duplicated between thevarious links.

According to one aspect of the invention, there is provided a method ofaccessing data from an internet application over a distributedinformation network, wherein a user terminal generates a plurality ofaccess requests for the same data to be delivered by the internetapplication over a plurality of routes, each request conveying anindication of their common origin to the targeted internet application,the internet application identifies whether a plurality of addressesmaking requests for the same data are associated with the same end user,and where this is the case splitting the requested data and streamingdifferent parts of the data to the different addresses requesting it,and the user terminal receives the requested data over the plurality ofroutes and assembles it into a single stream.

According to another aspect of the invention, an internet applicationhas means arranged to identify whether a plurality of addressesrequesting multiple requests for the same data are associated with thesame end user, and where this is the case splits the requested data, andstreams different parts of the data to the different addressesrequesting it. According to a complementary aspect, the end userapplication is provided with means for generating a plurality of accessrequests for the same data to be delivered over a plurality of routes,each request conveying an indication of their common origin to thetargeted internet application, and means for receiving the requesteddata and to assemble the data sent over the plurality of routes into asingle stream for access by the user.

Buffering may be necessary if traffic is slower over one path than it isover another.

In a preferred embodiment the internet application comprises means foridentifying correlation codes associated with data requests, means forassociating each such data request with any previous requests for thesame data having the same correlation code, and means for splitting therequested data between the addresses associated with the data requests.The corresponding user terminal comprises means for generating a firstaccess request having a correlation code indicative of its origin, meansfor determining whether the data rate of the data received in responseto the first request meets a predetermined level, and means to generateone or more further requests over different routes using the samecorrelation code.

The invention offers an improved quality of service and improveddownload speed. The invention requires the internet application and theuser equipment to co-operate such that the internet application canidentify addresses of users making use of this invention, but requiresno changes to the core internet or IP networks currently deployed, ortheir component equipment (Routers and Access Servers). The user mayconnect conventionally several times to the same Internet ServiceProvider, or may prefer to simultaneously connect to multiple InternetService Providers—a capability known to be possible with multiplevirtual channels, either permanent or switched.

Therefore with a simple change to the broadband access network, the enduser client software and internet application, the end user can receivenon real time data at several times the rate of a user with only asingle Internet connection. The management and support systems of theaccess network may require modification to provide the ability tooperate the user's broadband Internet connection as a plurality ofvirtual channels, which may each be connected to a different ISP.

The greater delay, and greater variation in that delay, may requirelarger initial buffers and may result in the video taking longer tostart up and appear on the screen after being requested. In onepreferred arrangement a first stream is connected in the conventionalway, others being added if the received bit-rate is not deemed adequate.Thus the initial delay would be minimised. Viewers who frequently switchbetween different TV channels would therefore be able to identify whatis being shown on the channel without delay, but may have to wait forthe quality to reach an optimum level.

An embodiment of the invention will now be described, by way of example,with reference to the drawings in which

FIG. 1 is a schematic illustration of a prior art conventional SingleISP Connection Service;

FIG. 2 is a schematic illustration of the connection of three switchedvirtual connections (SVCs) to three Internet protocol (IP) Addresses;

FIG. 3 is a schematic illustration of why streaming would not work overmultiple conventional SVCs

FIG. 4 is a schematic illustration of a system operating according tothe invention, with correlated streaming over multiple paths.

FIG. 5 is a flow chart illustrating the method of operation of oneembodiment of the invention.

As shown in FIG. 1, currently a single permanent virtual circuit (PVC)10 is set up between the user terminal 1 of an ADSL user, and the accessserver 11. The access server 11 terminates the PVC 10 and the PPP (12)signalling encapsulated onto the PVC. It also gives the end userterminal 1 an IP address 1X to enable it to connect to the Internet 14and send data to any other Internet application, for example a broadcastwebserver 13 (FIGS. 3 and 4).

With a switched virtual circuit (SVC) ADSL multiplexer (DSLAM) 20 theend user terminal 15 can connect simultaneously to multiple accessservers 21, 22, 23. FIG. 2 shows the user logged on to three differentInternet service providers. Again using PPP he is given a uniqueroutable IP address 21X, 22Y, 23Z for each connection. Although theincreased number of connections marginally increases the contentionlevel (the number of individual IP addresses attempting to access data),at busy times the individual user connected to three ISPs as in FIG. 2will still get almost three times as much data through as a userconnected to a single ISP as in the example of FIG. 1. (The actualincrease in rate is 3n/(n+2) where n is the total number of IP addressesaccessing data. When traffic is busy, the value of “n” is large and sothe expression converges on the value 3.0)

If all three connections are made to the same destination server 13, theuser 15 of the arrangement in FIG. 2 will not gain in overallinformation rate, because most of the data will be duplicated. FIG. 3shows how, using the existing IP network streaming protocols, the server3 being accessed would consider the user 15 to be three different usersbecause it receives requests from three different IP addresses 21X, 22Y,23Z. It would then send the same data to the end user 15 over each ofthe three different routes, via the access servers 21, 22, 23, so thereis clearly little benefit in setting up extra SVCs and trying todownstream the data over them.

Consider the scenario where the user 15 is trying to downstream video at500 kb/s from a broadcast webserver 13 in another continent. Each of theconnections 21, 22, 23 are heavily loaded and can each only supply 200kb/s. The user will obtain useful data only at the rate of the fastestof the three connections.

In the embodiment shown in FIGS. 4 and 5, an enhanced streaming protocolis provided, containing a correlation ID from the end user. Thecorrelation ID is chosen such that it is unlikely to be duplicated byother users. It could be generated in a variety of ways, either randomlyor based on the user's unique address.

As shown in FIG. 5, the user terminal 15 logs on to several InternetService Providers' access servers 21, 22, 23 . . . obtaining a differentaddress X, Y, Z . . . from each server (step 50). It would be possibleto establish two or more connections to the same ISP. However, some ISPshave authentication systems designed to prevent simultaneous logons bythe same user, in order to prevent fraudulent access. Suchauthentication systems would require reconfiguration to allow suchsimultaneous logons to take place.

The user terminal 15 first makes an initial streaming request 51,including the unique correlation code, over a first access server 21.

The broadcast webserver 13 checks this request against a store ofprevious requests (step 52) but fails to find any such requests with thesame correlation code. Since this is the first request for this datathat the user 1 has made, no such previous request has been recorded andthe video stream is returned to the user 1 in the conventional manner(step 53).

The user terminal 15 now checks the data rate of the video streamagainst a predetermined value (step 54). If the data rate is too slow,the user terminal 1 transmits a similar request 55, using the samecorrelation code but using a different access server 22.

The user terminal may also start to show the video stream with thereduced quality dictated by the low bit rate, so that the user can seewhat is being received. Alternatively, the data may be buffered so thatthe stream can all be shown at full quality when the further stream orstreams have been added. The reduction in quality of the first option ispreferred when delay is undesirable, such as when a real-time signal isbeing transmitted, or if a user is sampling a number of feeds to seewhat is available.

The webserver 13 again checks this request 55 against the store ofprevious requests (step 52) but this time recognises that the requests51, 55, despite coming from different IP addresses, 21X, 22Y are in factfrom the same origin 1. The server 3 then apportions the data betweenthe connections 21, 22 according to the rates they can each support(step 56). The information on attainable data rates can be obtainedfrom, for example the TCP sliding window size in the current TCP/IPstack. The windows size adapts to the data throughput in the currentInternet TCP session, so it is a reasonably accurate representation ofthroughput. A small data overhead is required in the transmitted data toidentify the order in which the data is to be reassembled.

This process is repeated until the user terminal 1 determines (step 54)that the data rate is satisfactory (or all available addresses have beenused), and then the received data is buffered and assembled in thecorrect order (step 57). Consequently, over several service providers21, 22, 23 the user's effective data rate would be the sum of theservice providers' throughputs, rather than just the fastest one on itsown. So in this example three 200 kb/s connections would provide 600kb/s. Thus a 500 kb/s TV stream could be supported by the threeconnections working together, where none of them could do so on its own.In order to avoid overloading of the network by users attempting vastnumbers of parallel access attempts, the internet application may limitthe number of connections available to any given user. However, inpractice a user attempting to use more than a few connections wouldexperience no greater benefit, as the bandwidth of his own accessconnection would become the limiting factor.

The invention may be used in conjunction with the invention described inthe applicant's co-pending International application filed on the samedate as the present application and claiming priority from UnitedKingdon patent application 0225359.9. That other application describes amethod of improving the latency (delay)_of a signal by transmitting itin its entirety over several parallel channels such that, for eachpacket sent to the destination, the first instance of that packet toarrive is assembled with the first instance of the other packets toarrive to form a single output stream. For example using six feeds (IPAddresses), a stream may be split into two to double the bandwidthaccording to the present invention, and then these two streams are theneach duplicated three times to reduce delay.

1. An internet application for providing data on receipt of requestsfrom user terminals over a distributed information network, having meansarranged to identify whether a plurality of addresses making requestsfor the same data are associated with the same end user, and where thisis the case splitting the requested data, and streaming different partsof the data to the different addresses requesting it.
 2. An internetapplication according to claim 1, comprising means for identifyingcorrelation codes associated with data requests, means for associatingeach such data request with any previous requests for the same datahaving the same correlation code, and means for splitting the requesteddata between the addresses associated with the data requests.
 3. Aninternet application according to claim 1, comprising means foridentifying the data rates available to each of the requesting addressesand apportioning the data between the addresses accordingly.
 4. A userterminal for accessing data from an internet application over adistributed information network, provided with means for generating aplurality of access requests for the same data to be delivered by theinternet application over a plurality of routes, each request conveyingan indication of their common origin to the targeted internetapplication, and means for receiving the requested data and to assemblethe data sent over the plurality of routes into a single stream foraccess by the user.
 5. A user terminal according to claim 4, comprisingmeans for generating a first access request having a correlation codeindicative of its origin, means for determining whether the data rate ofthe data received in response to the first request meets a predeterminedlevel, and means to generate one or more further requests over differentroutes using the same correlation code.
 6. A user terminal according toclaim 4, comprising means for buffering the incoming data to allow itsreassembly in a manner prescribed by the data content.
 7. A method ofaccessing data from an internet application over a distributedinformation network, wherein a user terminal generates a plurality ofaccess requests for the same data to be delivered by the internetapplication over a plurality of routes, each request conveying anindication of their common origin to the targeted internet application,the internet application identifies whether a plurality of addressesmaking requests for the same data are associated with the same end user,and where this is the case splitting the requested data and streamingdifferent parts of the data to the different addresses requesting it,and the user terminal receives the requested data over the plurality ofroutes and assembles it into a single stream.
 8. A method according toclaim 7, wherein the user terminal generates an initial access requestwith a correlation code indicative of its origin and the internetapplication stores the correlation code, and if the user terminaldetermines that the data received in response to the initial requestdoes not meet a predetermined data rate, it transmits one or morefurther requests using the same correlation code, the internetapplication identifying such requests as being associated with the sameend user.
 9. A method according to claim 7, wherein the internetapplication identifies the data rates available on the connection toeach of the requesting addresses and apportions the data to betransmitted to each of the addresses accordingly.
 10. A method accordingto claim 7, wherein the incoming data contains information to allow theuser terminal to reassemble it, and the user terminal buffers theinformation to allow its reassembly accordingly.